package client;

import java.io.File;
import java.io.IOException;
import view.MainWindow;

interface ClientInterface {

    /**
     * Connect to the server.
     *
     * @throws IOException
     */
    public void connect() throws IOException;

    /**
     * Get the server files tree and display it on the view.
     */
    public void listRemoteFiles();

    /**
     * Download a file from the server.
     *
     * @param mainWindow The view window.
     * @param stringRelativePath The server path of the file.
     * @param localFile The local path to download the remote file.
     * @param currentBar The view progress bar number.
     */
    public void downloadFile(MainWindow mainWindow, String stringRelativePath, File localFile, int currentBar);

    /**
     * Upload a file to the server.
     *
     * @param mainWindow The view window.
     * @param stringRelativePath The server path of the file.
     * @param localFile The local path of the local file to upload.
     * @param currentBar The view progress bar number.
     */
    public void uploadFile(MainWindow mainWindow, String stringRelativePath, File localFile, int currentBar);

}
